home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol186 / wsid.bas < prev    next >
Encoding:
BASIC Source File  |  1986-11-25  |  6.3 KB  |  139 lines

  1. 1000 ' ***             WSSUBJ.BAS
  2. 1010 ' ***  PROGRAM TO CREATE A WORDSTAR SUBJECT INDEX ***
  3. 1020 ' *** VERSION DATE 11/08/85    BY PERRY DAVIS ***
  4. 1030 GOSUB 6010  'SCREEN COLOR
  5. 1040 GOSUB 6040  'HSKPG
  6. 1050 GOSUB 6130  'LOAD HEADINGS
  7. 1060 GOSUB 2010  'DISPLAY DOCUMENTATION?
  8. 1070 GOSUB 2160  'PROCESSING ROUTINES
  9. 1080 GOSUB 2330  'PRINT WSFILES OR NOT
  10. 1090 GOTO  9010  'EOJ
  11. 2000 ' *** INITIATE PROCESSING ***
  12. 2010 LOCATE 7, 21: PRINT H1$: IF COL$ <> "" THEN 2040
  13. 2020 LOCATE 10,15: LINE INPUT; "Do you have a color monitor? (Yes/No): "; COL$
  14. 2030 IF COL$ = "Y" OR COL$ = "y" OR COL$ = "YES" OR COL$ = "yes" OR COL$ =          "Yes" THEN COL$ = "YES": GOSUB 6010: GOTO 2010  ELSE COL$ = "NO": GOTO 2040
  15. 2040 LOCATE 10,15:  LINE INPUT; "Do You Want Program Documentation (Yes/No): ";      DOC$
  16. 2050 IF DOC$ = "Y" OR DOC$ = "y" OR DOC$ = "YES" OR DOC$ = "yes" OR DOC$ =           "Yes" THEN 2060  ELSE 2150
  17. 2060 CLS
  18. 2070 FOR P = 1 TO 23
  19. 2090   READ P$
  20. 2100   T=6: IF P=18 THEN T=1
  21. 2110   PRINT TAB(T); P$
  22. 2120 NEXT P
  23. 2130 LOCATE 25,6: PRINT "Press Any Key to Continue... ";: AK$=INKEY$
  24. 2140 IF AK$=""      THEN 2130
  25. 2150 RETURN
  26. 2160 CLS
  27. 2170 GOSUB 6010: LOCATE 3,20: PRINT H1$
  28. 2180 CLOSE: OPEN "I",3,"DIRLIST"
  29. 2190 OPEN "O",2,"WSFILES": GOSUB 6100  'PRINT#2 HEADINGS
  30. 2200 IF EOF(3) THEN 2320
  31. 2210 LINE INPUT#3, FILEREAD$: FILE$ = LEFT$(FILEREAD$,12)
  32. 2220 IF LEFT$(FILEREAD$,2) = "  " THEN 2200
  33. 2230 FC = FC + 1: LOCATE 5,20: PRINT USING "###"; FC;:                               PRINT " Directory File Lines Processed"
  34. 2240 IF FILE$="" THEN 2200
  35. 2250 FC$=LEFT$(FILE$,1)
  36. 2260 IF FC$=" " OR FC$="." THEN 2200
  37. 2270 FILE$ = LEFT$(FILE$,8)+"."+RIGHT$(FILE$,3)
  38. 2280 GOSUB 6190  'CLOSE/OPEN FILES INPUT FILE
  39. 2290 GOSUB 7020: IF NWS$ = "NOT" THEN NWS$ = "OK":GOTO 2200
  40. 2300 GOSUB 7090
  41. 2310 GOTO  2200
  42. 2320 RETURN
  43. 2330 LOCATE 9, 14: PRINT "Print Report from WSFILES Now? (Yes or No): ";
  44. 2340 PF$ = INKEY$: IF PF$ = "" THEN 2340
  45. 2350 IF PF$= "YES" OR PF$ = "Yes" OR PF$ = "yes" OR PF$ = "Y" OR PF$ = "y"           THEN PRINT PF$: GOTO 2370
  46. 2360 PRINT PF$: RETURN
  47. 2370 LOCATE 11,10
  48. 2380 LINE INPUT; "Position Paper in Printer.  Press Any Key to Print..."; AK$
  49. 2390 CLOSE: OPEN "I",1,"WSFILES"
  50. 2400 IF EOF(1) THEN 2430
  51. 2410 LINE INPUT#1, L$: LPRINT L$
  52. 2420 GOTO 2400
  53. 2430 LPRINT CHR$(12)
  54. 2440 RETURN
  55. 6000 ' *** SCREEN HOUSEKEEPING ROUTINES ***
  56. 6010 SCREEN 0: IF COL$ = "YES" THEN COLOR 14,1,9  ELSE COLOR 7,0,0
  57. 6020 CLS
  58. 6030 RETURN
  59. 6040 DEFINT  A-Z
  60. 6050 KEY OFF
  61. 6060 P = 0
  62. 6070 OFFPD$ = "Y"
  63. 6080 RETURN
  64. 6090 PRINT#2, CHR$(12)
  65. 6100 P = P + 1: PLN$ = H2$ + "      " + "Page " + STR$(P)
  66. 6110 PRINT#2, " ": PRINT#2, " ": PRINT#2, PLN$: PRINT#2, " ": L = 4: RETURN
  67. 6120 ' *** HEADING CONSTANTS ***
  68. 6130 H1$="FILE IDENTIFICATION INDEX PROGRAM"
  69. 6140 H2$ = "   FILE IDENTIFICATION LIST / IN FILE ORDER, As of " + DATE$
  70. 6150 TM$(1) = "WordStar is a trademark of MicroPro International"
  71. 6160 TM$(2) = "This program was compiled using the IBM BASIC Compiler,"
  72. 6170 TM$(3) = "a product of Microsoft Corporation"
  73. 6180 RETURN
  74. 6190 CLOSE 1: ON ERROR GOTO 6200: OPEN "I",#1,FILE$: ON ERROR GOTO 0: RETURN
  75. 6200 RESUME 2200
  76. 7000 ' *** SUBROUTINES ***
  77. 7010 CL=INT((80-CL)/2):RETURN
  78. 7020 EX$ = RIGHT$(FILE$,3)
  79. 7030 IF EX$ = "EXE" OR EX$ = "COM" OR EX$ = "DCT" THEN NWS$ = "NOT": GOTO 7070
  80. 7040 IF EX$ = "OVR" OR EX$ = "DAT" OR EX$ = "DTA" THEN NWS$ = "NOT": GOTO 7070
  81. 7050 IF EX$ = "BAT" OR EX$ = "DEF" OR EX$ = "NDX" THEN NWS$ = "NOT": GOTO 7070
  82. 7060 IF EX$ = "BAS" OR EX$ = "C"   OR EX$ = "SAV" THEN NWS$ = "NOT": GOTO 7070
  83. 7070 RETURN
  84. 7080 ' ***
  85. 7090 FOR LI = 1 TO 20
  86. 7100   IF EOF(1) THEN 7150 ELSE   LINE INPUT#1, L$
  87. 7110   IF LI < 6 AND LEFT$(L$,2) = ".." THEN LC = 7: L$=RIGHT$(L$,LEN(L$)-2):          GOSUB 7170: S$ = "YES": GOTO 7150
  88. 7120   LCK = INSTR(L$,"SUBJECT:"):  IF LCK > 0 THEN LC = LCK: GOSUB 7160:              GOTO 7140
  89. 7130   LCKA = INSTR(L$,"Subject:"): IF LCKA > 0 THEN LC = LCKA: GOSUB 7160
  90. 7140 NEXT LI
  91. 7150 RETURN
  92. 7160 L$=RIGHT$(L$,LEN(L$)-LC-7)
  93. 7170 IF LEN(L$) > 65 THEN L$ = LEFT$(L$,65)
  94. 7180 FOR K = 1 TO LEN(L$)
  95. 7190   CHRCK = ASC(MID$(L$,K,1))
  96. 7200   IF CHRCK < 32 THEN MID$(L$,K,1) = " "
  97. 7210   IF CHRCK > 126 THEN CHRCK = CHRCK-128: MID$(L$,K,1) = CHR$(CHRCK)
  98. 7220 NEXT K
  99. 7230 IF L$ = "Subject:" OR L$ = "SUBJECT:" THEN 7290
  100. 7240 FOR J = 1 TO 65
  101. 7250   IF MID$(L$,J,1) = " " THEN 7260 ELSE 7280
  102. 7260 NEXT J
  103. 7270 IF J > 1 THEN L$ = RIGHT$(L$,LEN(L$)-J): GOTO 7280
  104. 7280 L$ = RIGHT$(L$,LEN(L$)+1-J)
  105. 7290 FPR$ = FILE$ + ":"
  106. 7300 PRINT#2, FPR$; L$: L=L+1
  107. 7310 IF L = 60 THEN L = 0: GOSUB 6090
  108. 7320 FI = FI + 1: LOCATE 7,28: PRINT USING "###"; FI;:PRINT " Files Indexed"
  109. 7330 RETURN
  110. 9000 ' *** END OF JOB ROUTINE ***
  111. 9010 CLOSE
  112. 9020 LOCATE 15,16: PRINT "End of File Identification Index Program"
  113. 9030 LOCATE 18,1: FOR TM = 1 TO 3: PRINT TAB(10); TM$(TM): NEXT TM
  114. 9040 PRINT: PRINT: SYSTEM
  115. 10000 ' ********************************************************************
  116. 10010 DATA "     ***  WSID: FILE IDENTIFICATION INDEX SYSTEM  ***"
  117. 10020 DATA "          A Public Domain Software Contribution"
  118. 10030 DATA "            From Perry Davis / November 1985"
  119. 10040 DATA "     9A Brookline Court / Princeton, NJ / 609-921-3175"
  120. 10050 DATA " "
  121. 10060 DATA "WSID creates a report listing WordStar and ASCII filenames found"
  122. 10070 DATA "in a directory plus one line of descriptive information of up to 65
  123. 10080 DATA "characters about each file.  It ignores files with the extensions:"
  124. 10090 DATA "BAS, BAT, C, DAT, DEF, DCT, DEF, EXE, NDX, OVR, SAV."
  125. 10100 DATA " "
  126. 10110 DATA "Descriptive information about a file is entered by the user.  It"
  127. 10120 DATA "may be part of a memo following the word 'SUBJECT:' or 'Subject:'"
  128. 10130 DATA "(including the colon) within the first 20 lines, OR, it may follow"
  129. 10140 DATA "TWO (2) dots found within the first five (5) lines of the file."
  130. 10150 DATA "The two dots are a WordStar convention for in-document Comments"
  131. 10160 DATA "and don't print as print as part of the document.  For example,"
  132. 10170 DATA "(note: first dot must be column 1):"
  133. 10180 DATA "..THIS FILE CONTAINS AN OUTLINE FOR AN ARTICLE ON DOS WRITTEN 2/27/85"
  134. 10190 DATA " "
  135. 10200 DATA "To operate: copy WSIDENT.BAT, WSID.EXE to the directory to index;"
  136. 10210 DATA "SORT.EXE is also needed.  At prompt, enter WSIDENT"
  137. 10220 DATA"The output is a file called WSFILES which can be printed immediately"
  138. 10230 DATA "or edited and printed later."
  139.